package com.tiankong.ware.service.impl;

import com.tiankong.ware.entity.PurchaseDetail;
import com.tiankong.ware.entity.WareSku;
import com.tiankong.ware.mapper.WareSkuMapper;
import com.tiankong.ware.service.WareSkuService;
import net.youdi.common.base.BaseServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 商品库存 服务实现类
 * </p>
 *
 * @author scl
 * @since 2021-03-22
 */
@Service
public class WareSkuServiceImpl extends BaseServiceImpl<WareSkuMapper, WareSku> implements WareSkuService {

    @Override
    public void inStock(List<PurchaseDetail> purchaseDetails) {
        purchaseDetails.stream().filter(item->item.getSkuNum() != null && item.getSkuNum() > 0).forEach(item->{
            boolean update = update().eq("sku_id", item.getSkuId()).eq("ware_id", item.getWareId())
                    .setSql("stock=stock+" + item.getSkuNum()).update();
            if (!update){
                //判断如果还没有这个库存记录新增
                save(new WareSku().setSkuId(item.getSkuId()).setWareId(item.getWareId()).setStock(item.getSkuNum()));
            }
        });
    }
}
